package com.fufufu.mail.product.exception;


import com.fufufu.common.exception.BizCodeEnume;
import com.fufufu.common.utils.R;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

/**
 * @author Lenovo
 * 集中处理涵盖了的controller的异常
 */
@RestControllerAdvice(basePackages = "com.fufufu.mail.product.controller")
// 注意上面这个主机只是加入容器，如果需要返回json需要标注下面这个注解
public class MymailExceptionControllerAdvice {

    @ExceptionHandler(value = MethodArgumentNotValidException.class)
    public R handlerValidException(MethodArgumentNotValidException e) {
        Map<String, String> map = new HashMap<>();
        for (FieldError fieldError : e.getBindingResult().getFieldErrors()) {
            map.put(fieldError.getField(), fieldError.getDefaultMessage());
        }
        return R.error(BizCodeEnume.VALID_EXCEPTION.getCode(), BizCodeEnume.VALID_EXCEPTION.getMessage()).put("data", map);
    }
}
